home *** CD-ROM | disk | FTP | other *** search
- import java.applet.Applet;
- import java.awt.Canvas;
- import java.awt.Color;
- import java.awt.Component;
- import java.awt.Dimension;
- import java.awt.Event;
- import java.awt.Graphics;
- import java.awt.Image;
- import java.awt.MediaTracker;
- import java.awt.image.CropImageFilter;
- import java.awt.image.FilteredImageSource;
- import java.awt.image.ImageObserver;
- import java.net.MalformedURLException;
- import java.net.URL;
-
- public class BitmapButtonCanvas2 extends Canvas {
- Image osImage;
- Graphics osg;
- URL theURL;
- Image noMouseImage;
- Image mouseOverImage;
- boolean drawNoMouseImage = true;
- boolean drawMouseOverImage = false;
- Applet theApplet;
- Color bkColor;
- Image bkImage;
-
- public BitmapButtonCanvas2(Applet var1, int var2) {
- this.theApplet = var1;
- this.GetParameters(var1, var2);
- }
-
- public synchronized void reshape(int var1, int var2, int var3, int var4) {
- super.reshape(var1, var2, var3, var4);
- this.osImage = null;
- this.osg = null;
- }
-
- public void paint(Graphics var1) {
- this.update(var1);
- }
-
- public void update(Graphics var1) {
- if (this.osImage == null) {
- this.osImage = ((Component)this).createImage(((Component)this).size().width, ((Component)this).size().height);
- this.osg = this.osImage.getGraphics();
- }
-
- this.osg.setColor(((Component)this).getBackground());
- this.osg.fillRect(0, 0, ((Component)this).size().width, ((Component)this).size().height);
- if (this.bkImage != null) {
- int var2 = this.bkImage.getWidth(this);
- int var3 = this.bkImage.getHeight(this);
- int var4 = ((Component)this).size().width / var2;
- int var5 = ((Component)this).size().height / var3;
- ++var4;
- ++var5;
-
- for(int var6 = 0; var6 < var5; ++var6) {
- for(int var7 = 0; var7 < var4; ++var7) {
- this.osg.drawImage(this.bkImage, var7 * var2, var6 * var3, this);
- }
- }
- }
-
- if (this.drawNoMouseImage && this.noMouseImage != null) {
- this.osg.drawImage(this.noMouseImage, 0, 0, ((Component)this).size().width, ((Component)this).size().height, this);
- } else if (this.drawMouseOverImage && this.mouseOverImage != null) {
- this.osg.drawImage(this.mouseOverImage, 0, 0, ((Component)this).size().width, ((Component)this).size().height, this);
- }
-
- var1.drawImage(this.osImage, 0, 0, (ImageObserver)null);
- }
-
- public void GetParameters(Applet var1, int var2) {
- String var3 = var1.getParameter("bitmapButtonImageWidth" + var2);
- int var4 = AppletParam2.GetInt(var3, 100);
- var3 = var1.getParameter("bitmapButtonImage" + var2);
- if (var3 != null) {
- try {
- MediaTracker var5 = new MediaTracker(var1);
- Image var6 = var1.getImage(var1.getCodeBase(), var3);
- var5.addImage(var6, 0);
- var5.waitForAll();
- int var7 = var6.getHeight((ImageObserver)null);
- CropImageFilter var8 = new CropImageFilter(0, 0, var4, var7);
- this.noMouseImage = ((Component)this).createImage(new FilteredImageSource(var6.getSource(), var8));
- CropImageFilter var9 = new CropImageFilter(var4, 0, var4, var7);
- this.mouseOverImage = ((Component)this).createImage(new FilteredImageSource(var6.getSource(), var9));
- } catch (Exception var11) {
- System.out.println(((Throwable)var11).getMessage());
- }
- }
-
- var3 = var1.getParameter("bitmapButtonUrl" + var2);
- if (var3 != null) {
- try {
- this.theURL = new URL(var3);
- } catch (MalformedURLException var10) {
- }
- }
-
- var3 = var1.getParameter("bitmapButtonBkColor" + var2);
- this.bkColor = AppletParam2.GetColor(var3, (Color)null);
- if (this.bkColor != null) {
- ((Component)this).setBackground(this.bkColor);
- }
-
- var3 = var1.getParameter("bitmapButtonBkImage" + var2);
- this.bkImage = var1.getImage(var1.getCodeBase(), var3);
- ((Component)this).repaint();
- }
-
- public boolean mouseEnter(Event var1, int var2, int var3) {
- if (this.theURL != null) {
- this.theApplet.showStatus(this.theURL.toString());
- }
-
- this.drawNoMouseImage = false;
- this.drawMouseOverImage = true;
- ((Component)this).repaint();
- return true;
- }
-
- public boolean mouseExit(Event var1, int var2, int var3) {
- this.theApplet.showStatus("");
- this.drawNoMouseImage = true;
- this.drawMouseOverImage = false;
- ((Component)this).repaint();
- return true;
- }
-
- public boolean mouseDown(Event var1, int var2, int var3) {
- if (this.theURL != null) {
- this.theApplet.getAppletContext().showDocument(this.theURL);
- return true;
- } else {
- return false;
- }
- }
-
- public Dimension minimumSize() {
- return new Dimension(10, 10);
- }
-
- public Dimension preferredSize() {
- return new Dimension(10, 10);
- }
- }
-